package com.ljy.my_study.leetcode.整数反转;

/**
 * @description:
 * @author: James
 * @create: 2022-04-03 20:21
 */
public class TestMain {

//    给你一个 32 位的有符号整数 x ，返回将 x 中的数字部分反转后的结果。
//
//    如果反转后整数超过 32 位的有符号整数的范围 [−231,  231 − 1] ，就返回 0。
//
//    假设环境不允许存储 64 位整数（有符号或无符号）。
//             
//
//    示例 1：
//
//    输入：x = 123
//    输出：321
//    示例 2：
//
//    输入：x = -123
//    输出：-321
//    示例 3：
//
//    输入：x = 120
//    输出：21
//    示例 4：
//
//    输入：x = 0
//    输出：0
//             
//
//    提示：
//
//            -231 <= x <= 231 - 1
//
//    来源：力扣（LeetCode）
//    链接：https://leetcode-cn.com/problems/reverse-integer
//    著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。

    public static void main(String[] args) {

    }

    public int reverse(int x) {
        if(x==0){
            return 0;
        }
        int max=(Integer.MAX_VALUE-1)/10;
        int min=-Integer.MAX_VALUE/10;
        int result=0;
        while(x!=0){
            int b=x%10;
            x/=10;
            if(result>max||result<min){
                return 0;
            }
            result=result*10+b;
        }
        return result;
    }
}
